Java Logo


 


  ORACLE JAVA ME EMBEDDED CLIENT FAQ




Red Triangle  ORACLE JAVA ME EMBEDDED CLIENT FAQ

目次
 

Q:Oracle Java ME Embedded Client 1.1.1製品に含まれるテクノロジーについて教えてください。

Q:Oracle Java ME Embedded Clientのシステム要件を教えてください。

Q:Oracle Java ME Embedded ClientでサポートされているAPIを教えてください。

Q:Oracle Java ME Embedded Clientと標準Java SEの機能上の違いを教えてください。

Q:サポートが必要なプラットフォームが一覧にありません。どうすれば良いですか。

Q:Oracle Java ME Embedded Clientのパフォーマンスは、C/C++と比較してどのようなものですか。

Q:ネイティブ・ドライバとアプリケーションへのアクセス方法を教えてください。

Q:組込み使用向けのJavaアプリケーションをデバッグする方法を教えてください。

Q:Oracle Java ME Embedded Clientランタイムでサポートされているアプリケーション・モデルを教えてください。

Q:スタンドアロンのOracle Java ME Embedded Clientランタイム上で使用できるグラフィック・ライブラリについて教えてください。

Q:Oracle Java ME Embedded Clientに組込みデータベースを統合できますか。

Q:Oracle Java ME Embedded Clientがローカル・データとネットワーク・トラフィックを保護する方法について教えてください。

Q:Java Embeddedランタイムを利用したデバイス上で、既存のサード・パーティのJavaライブラリやアプリケーション(例:OSGi、Java Webサーバーなど…)を簡単に統合して実行できますか。

Q:Oracle Java ME Embedded Clientランタイムを利用したデバイス上で、複数のJavaアプリケーションを同時に実行できますか。

Q:Oracle Java ME Embedded Clientのライセンスについて教えてください。

Q:開始方法を教えてください。


Q1:Oracle Java ME Embedded Client 1.1.1製品に含まれるテクノロジーについて教えてください。

Oracle Java Micro Edition Embedded Clientは、小型デバイス向けに設計されたクライアント・ミドルウェア・スタックであり、Java ME Connected Device Configuration(CDC)テクノロジーに基づいています。CDCテクノロジーは、TV、Blu-ray Discプレーヤ、セットトップ・ボックス、電子書籍リーダー、自動検針装置、多機能プリンタ、ネットワークおよびストレージ機器などに導入されています。

このスタックは、ネットワークおよびグラフィック・サポート機能を備えたフル機能付きのJava仮想マシンを提供します。これには、以下のテクノロジーのサポートが含まれます。

  • Connected Device Configuration(CDC)1.1.2

    • オラクルの世界トップレベルのJava仮想マシンであるCDC-HI(Hotspot Implementation)の動的Just-In-Timeコンパイラ・テクノロジー上に実装されています。

  • Foundation Profile(FndP)1.1.2

  • Security Optional Package(SecOp)1.0.1(Java Secure Socket Extension(JSSE)モジュールを含む)

  • オプション・パッケージ:Webサービス(JSR-172)、JDBC(JSR-169)、RMI(JSR-66)、XML API(JSR-280)

Q2:Oracle Java ME Embedded Clientのシステム要件を教えてください。

システム・ハードウェアおよびソフトウェア要件について、詳しくは、リソースのセクションを参照してください。

Q3:Oracle Java ME Embedded ClientでサポートされているAPIを教えてください。

詳細なAPIドキュメントは製品に付属しています。開発者は、Oracle Java ME Embedded Client 1.1.1を構成するJava Specification Request(JSR)(jcp.orgで参照可能)を参照することもできます。

CDC APIの概要

Foundation ProfileとPersonal Basis Profileを比較すると、CDC APIの構成内容の確認に役立ちます。これらの違いを理解することは、CDCアプリケーション開発の重要な要素です。名前から分かるとおり、Foundation Profileは、一連の基本的なアプリケーション・サポート・クラスを提供します。Personal Basis Profileは、Foundation Profileに特別な機能を追加しています。

関係

パッケージ/クラス

説明

Foundation Profile

java.io
java.lang
Java.lang.ref
java.lang.reflect
java.math
java.net
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.text
java.util
java.util.jar
java.util.zip

ほとんどのコア・パッケージおよびクラスに対して、J2SE 1.4.2がフル・サポートされています。

領域の節約のため、一部のエンタープライズ・レベルAPIは削除されています。

javax.microedition.io

Generic Connection Framework(GCF)は、さまざまな通信テクノロジーを抽象化することで、特定の接続タイプを参照しなくても、アプリケーションがネットワーク接続を確立し、I/Oを実行できるようにします。

Personal Basis Profileによる追加


java.awt
java.awt.color
java.awt.event
java.awt.image

軽量コンポーネントおよび一部のJava 2Dグラフィック・クラスに対するサポート

java.beans

実行時サポートに限定。設計時のJavaBeans操作は、Java SEテクノロジーに基づく統合開発環境(IDE)などの外部Beanエディタによって管理する必要があります。

 

java.rmi
java.rmi.registry

xletに対する限定RMIサポート。汎用向けではありません。

javax.microedition.xlet
javax.microedition.xlet.ixc

Xletサポート

 

 

Q4:Oracle Java ME Embedded Clientと標準Java SEの機能上の違いを教えてください。 

Oracle Java ME Embedded Client製品は、TVセットトップ・ボックス、Blu-ray Discプレーヤ、電子書籍リーダー、自動検針装置、プリンタ、メディア・プレーヤ、その他の組込みデバイスを含む、リソースの限定されたデバイス向けに設計されています。Oracle Java ME Embedded Client(CDC仮想マシンを利用)が提供するAPIには、Java SEよりも多くの制限がありますが、これらの製品でフットプリントの小さいさまざまなデバイスをサポートできます。

CDC 1.1は、Java SE 1.4.2互換性とリソースに制約があるデバイスのサポートという、2つの目標を中心に設計されています。Java SEとの互換性により、開発者は、ライブラリ、ツール、スキルなどのJava SEテクノロジーへの投資を利用できます。リソースに制約があるデバイスのサポートにより、デバイス・ベンダーは、セキュアなモバイル・エンタープライズ・アプリケーションに対応した機能豊富なJavaランタイム環境を提供できます。

CDCは、全面的なクラス・ロードおよびコア・ライブラリ機能を含むJava仮想マシン仕様を完全にサポートしています。クラス・ライブラリ・レベルでは、CDCは変更されたJava SEクラス・ライブラリを使用します。このインタフェースは、リソースに制約のあるデバイスの要件に合致するように縮小されており、実装は小規模なメモリ環境向けに最適化されています。リソースを節約するため、Java SEに基づく一部のクラス・ライブラリはインタフェースが変更されており、完全に削除されているクラス・ライブラリもあります。その結果、RAMやROMに対する数メガバイトのメモリ割当てに無理なく適合する柔軟なJavaランタイム環境が実現しています。

CDC 1.1仕様はJavaSE 1.4.2のサブセットに基づいており、JavaSE 1.4.2のクラス・ファイルのメジャーおよびマイナー・バージョンをサポートしています。
 

Q5:サポートが必要なプラットフォームが一覧にありません。どうすれば良いですか。

プロジェクトのハードウェア(CPU、メモリ)要件やOS要件が異なる場合は、こちらからお問い合わせください。  

Q6:Oracle Java ME Embedded Clientのパフォーマンスは、C/C++と比較してどのようなものですか。

最終的なパフォーマンスはアプリケーションによって異なりますが、Oracle Java ME Embedded Client上で実行されるJavaアプリケーションは、C/C++アプリケーションと同程度のパフォーマンスを発揮します。多くのサード・パーティのテストでは、JavaのパフォーマンスはC/C++と同等か、または優れていることが示されています。Javaの動的なJust-In-Timeコンパイルおよび積極的なインライン化により、静的なC/C++コンパイルよりも最適化に適したターゲット・マシン用コードが生成されます。

Q7:ネイティブ・ドライバとアプリケーションへのアクセス方法を教えてください。

Oracle Java ME Embedded Clientは、Java Native Interface(JNI)と呼ばれる、ネイティブ・ドライバおよびC/C++関数へのインタフェースを提供しています。JNIは、ネイティブ・コード周辺のJava認識型のラッパーと、ラッパーを相互参照するための新しいヘッダー・ファイルを作成し、ネイティブ・コードによってパラメータの受け渡しを可能にするJavaプログラムからの呼出しを行うことで機能します。

Q8:組込み使用向けのJavaアプリケーションをデバッグする方法を教えてください。

JavaアプリケーションをデバッグするためのAPIおよびツールが一式提供されており、ローカル・デバッグとリモート・デバッグの両方がサポートされています。リソース管理およびパフォーマンス・プロファイリングのためのAPIやツールも提供されています。CDC-HIがサポートするJVMTIにより、ローカル・デバイスおよびリモート・デバイスによるJavaアプリケーションのデバッグおよびプロファイリングのサポートが可能になります。新規プロジェクトの開発方法、サンプル・テンプレート、およびデバッグ/プロファイリング・セッションの設定方法についての完全なドキュメントは、製品バンドルに含まれています。

Q9:Oracle Java ME Embedded Clientランタイムでサポートされているアプリケーション・モデルを教えてください。

CDCは、開発者が異なるユーザー要件やデプロイ・シナリオに対処できるようにする、いくつかのアプリケーション・モデルをサポートしています。これらは、従来のネイティブ・アプリケーションと同様の基本的なスタンドアロン・アプリケーション・モデルから、デプロイとリソース管理のタスクをアプリケーション管理システムにオフロードするマネージド・アプリケーション・モデルまでに及びます。

スタンドアロン・アプリケーション:
もっとも基本的なアプリケーション・モデルは、Javaテクノロジーの初期にまで遡るスタンドアロン・アプリケーション・モデルです。開発者は、ユーティリティ・アプリケーションや生産性アプリケーションなどの決まった目的の設計にスタンドアロン・アプリケーションを使用します。Java仮想マシンの起動時に、ロード対象となるメイン・アプリケーション・クラスの名前が提供されます。このクラスには、必ずmain()という名前のメソッドが含まれており、残りのアプリケーション・クラスのロード、オブジェクト作成、およびメソッド実行を処理します。スタンドアロン・アプリケーションは、Javaランタイム環境と直接やり取りして、独自のライフ・サイクル要件およびシステム・リソース要件を管理します。main()メソッドが終了すると、スタンドアロン・アプリケーションも終了します。

マネージド・アプリケーション:Xlet

Personal Basis Profileには、xletアプリケーション・モデルに対するサポートが含まれています。このモデルの目的は、アプレット・アプリケーション・モデルに似ていますが、設計が異なります。おもな違いは、xletはAWTに依存せず、より明確なライフ・サイクル・モデルを持つ点です。xletはxletマネージャへロードされ、このマネージャがライフ・サイクルを管理し、XletContextを通じてシステム・サービスを提供します。xletマネージャは、動的にロードされる複数のxletを処理でき、これらのxletは、RMIメカニズムを通じて相互通信できます。

xletアプリケーション・モデルはAWTに依存しないため、スマートフォンからセットトップ・ボックスまでに及ぶGUIシナリオおよび非GUIシナリオの両方でxletを使用できます。

Q10:スタンドアロンのOracle Java ME Embedded Clientランタイム上で使用できるグラフィック・ライブラリについて教えてください。

対象デバイス向けのOracle Java ME Embedded Client 1.1.1リリースは、現在はグラフィック・サポートのないヘッドレス形式でのみ利用できます。ヘッドフル形式のランタイムも利用できますが、オラクルによる特別ライセンスが必要であり、公開チャネルでは利用できません。ヘッドフル形式のラインタイムは、Personal Basis Profile(PBP)をサポートしています。PBPは、軽量コンポーネントと一部のJava 2Dグラフィック・クラスをサポートしています。これらのクラスを使用すると、図形の描画、テキストおよびイメージの表示、入力イベントの処理をアプリケーションで実行できます。ヘッドフル形式のランタイムの取得に興味がある場合は、こちらからお問い合わせください。

Q11:Oracle Java ME Embedded Clientに組込みデータベースを統合できますか。

はい。Oracle Java ME Embedded Client 1.1.1リリースには、JDBC Optional Package for CDC/Foundation Profile(JSR-169)が含まれています。このオプション・パッケージは、インストールされたネイティブの組込みデータベース・ドライバに接続して、問合せを実行するために必要なJavaインタフェースを提供します。このデータベースには、JSR-169と互換性のあるドライバが含まれており、このドライバにはDataSource APIの実装が含まれている必要があります。

Q12:Oracle Java ME Embedded Clientがローカル・データとネットワーク・トラフィックを保護する方法について教えてください。

セキュリティはJavaテクノロジーの主要な機能であり、当初からJavaプラットフォームの発展を導いてきました。CDCには、さまざまなレベルのセキュリティが含まれており、ユーザー、開発者、サービス・プロバイダ、および企業に、強力なセキュリティ・アーキテクチャを備えたアプリケーション・フレームワークを提供します。

  • 仮想マシンのセキュリティには、クラス検証などのランタイム機能と、ポインタの省略などの言語機能が含まれています。これらのセキュリティ機能により、バッファ・スタック・オーバーフローと呼ばれる、あらゆる種類のセキュリティ脅威が排除されています。初期のJavaテクノロジー・リリースは、これらの機能を使用して、単純でありながらも強力な"サンドボックス"セキュリティ・モデルを構築していました。このモデルでは、ユーザーのシステムを余計なリスクにさらすことなく、WebブラウザでJavaアプレットをダウンロードできます。
  • 署名付きクラスは、サンドボックス・セキュリティ・モデルを拡張しており、ファイルをロードしようとするJava仮想マシンに対して、Javaクラス・ファイルの整合性とロード元を検証します。
  • ポリシーベースのセキュリティは、J2SE 1.2で導入されました。セキュリティ・ポリシーにより、アプリケーション開発者は、アプリケーションのオブジェクトのデータおよびインタフェースにアクセスできるユーザーをきめ細かく制御できます。セキュリティ・ポリシー・ファイルは、指定された一連の権限とポリシーで構成されており、システム管理者はデプロイ中にこれを変更できます。
  • 暗号化は、セキュアな送信やアーカイブのためにソフトウェアおよびデータをエンコードする標準的な方法を提供します。Javaセキュリティ・フレームワークには、Java Cryptography Architecture(JCA)が含まれます。JCAは、暗号化機能を提供、選択、および使用するための標準ベースのフレームワークです。


CDCには、Java SEと同じセキュリティ・フレームワークが含まれます。このセキュリティ・フレームワークは、アルゴリズム非依存に基づくため拡張可能であり、さまざまなセキュリティ・サービス実装を使用できるため相互運用が可能です。Foundation Profile(JSR 219)には、以下の3つのオプション・パッケージが含まれており、このフレームワークを使用してセキュリティ機能が追加されています。

  • Java Authentication and Authorization Service(JAAS)。このオプション・パッケージは、認証および認可に対してプラガブルなフレームワークを提供します。この認可コンポーネントを使用すると、コード・ロケーション、コード署名者、およびコード実行者に基づくアクセス制御を個別のポリシー・ファイルで指定でき、このファイルはシステム管理者が管理できます。実行時は、Javaランタイム環境により、アプリケーションの変更をしなくても、キーストアなどのさまざまなログイン・モジュールが提供されます。代替ログイン・モジュールを実行時に統合して、バイオメトリックやKerberos認証などのシステムをサポートできます。
  • Java Cryptography Extension(JCE)。このオプション・パッケージは、Java Cryptography Architectureを拡張することで、暗号化、キー生成、キー・アグリーメント、メッセージ認証コード(MAC)生成などのサービスを含めます。
  • Java Secure Socket Extension(JSSE)。このオプション・パッケージは、Secure Socket Layer(SSL)を使用してデータを暗号化し、通信ピアを認証するためのサービスを提供します。

Q13:Java Embeddedランタイムを利用したデバイス上で、既存のサード・パーティのJavaライブラリやアプリケーション(例:OSGi、Java Webサーバーなど…)を簡単に統合して実行できますか。

はい。Oracle Java ME Embedded Clientを使用すると、別のアプリケーションやシステムのJARファイルをランタイムのCLASSPATHへ追加できます。Javaライブラリおよびアプリケーションが、Oracle Java ME Embedded Clientスタックがサポートするのと同じAPIを使用し、ターゲット・バージョンとして1.4.2を使用して(Javaコンパイラ – javacを用いて)コンパイルされると、Oracle Java ME Embedded Client上で稼働するようになります。

このようなアプリケーションの例には、Jetty Webサーバーやサード・パーティの商用OSGi製品があります。

Q14:Oracle Java ME Embedded Clientランタイムを利用したデバイス上で、複数のJavaアプリケーションを同時に実行できますか。

はい。CDCは、ClassLoaderクラスをサポートしているため、アプリケーションは独自のクラスを定義してロードできます。これにXletライフ・サイクル・モデルとXletManagerを組み合わせることで、複数の同時実行Javaアプリケーションをサポートする基本的なアプリケーション管理システムの開発が可能になります。

Q15:Oracle Java ME Embedded Clientのライセンスについて教えてください。

オラクルのライセンス、サポートおよびパートナー・プログラムについては、こちらからお問い合わせください。 

Q16:開始方法を教えてください。

開始方法は簡単です。このページの上部にある"Oracle Java ME Embedded Clientの使用の開始"セクションを参照してください。通常、おもなステップは以下の3つです。

  1. ダウンロード - ダウンロード・ページから、最新のOracle Java ME Embedded Clientバイナリ・リリースを選択してください。必要なプラットフォームが含まれていない場合は、こちらからお問い合わせください。
  2. 開発 - 製品に付属しているOracle Java ME Embedded Client SDKを使用して、組込みアプリケーションを開発します。開発は無償で実行できます。お手元のプラットフォームで、Oracle Java ME Embedded ClientランタイムとJavaアプリケーションを一緒に試します。Javaの扱いが初めてである場合も、チュートリアル、ブループリント、ドキュメント、トレーニングなどのオラクルからの支援だけでなく、Javaコミュニティからも広範なリソースが提供されています。
  3. デプロイ - デプロイの準備は整いましたか。オラクルのライセンス、サポートおよびパートナー・プログラムについては、こちらからお問い合わせください。